<?php
class BaseDatos {
	private $HOSTNAME="localhost";
	private $BASEDATOS="giisco";
	private $USUARIO="root";
	private $CLAVE="";
	private $CONEXION;
	private $QUERY;
	private $NumTupla;
	private $CantTupla = 0;  // cantidad de filas afectadas por la operacion
	private $transaccion;
	
/**
 * Retorna Tru en caso que se este realizando una transaccion sobre la conexion, y false en caso conrtario
 * "transaccion" -> hay una transaccion iniciada
 * @return boolean
 */
public function getEnTransaccion(){
	if($this->transaccion=="ON")
		return true;
	else false;
}

public  function Iniciar(){
       $conexion = mysql_connect($this->HOSTNAME,$this->USUARIO,$this->CLAVE);
       if ($conexion){
	       //echo "se conecto";
	       if (mysql_select_db($this->BASEDATOS,$conexion))	       {
			//echo "ok en la ejecucion consulta";       
		        $this->CONEXION = $conexion;
				unset($this->QUERY);
				return true;
	       }  else {     echo "Error al conectar la base de datos";		}
	   }else  echo "no se conecto"; 
      return false;
  }



 public  function Cerrar(){
  // echo $this->CONEXION;
  	return mysql_close($this->CONEXION);
	//return true;
   }

/*
 * Esta funcion ejecuta una consulta SELECT sobre la base de datos. El resultado es un arreglo donde
 * cada elemento $arreglo_datos[$i] contiene una tupla del resultado (que tambien se guarda como
 * un arreglo).
 */
public  function Select($consulta){
  	 if ($this->QUERY = mysql_query($consulta)){
			$this->CantTupla = mysql_num_rows($this->QUERY);
			return true;
     }else {
			//$this->Cerrar();
			//echo "Error en la consulta: ".$this->QUERY;
			return false;
	  }
  }

 public function Registro() {
   //  echo $this->QUERY;
     if($temp = mysql_fetch_assoc($this->QUERY)) {
		return $temp;
	}else
		return false;
 }

 public function Cantidad() {
  	return mysql_num_rows($QUERY);
  }
 /*
  * Almacena la cantidad de tuplas afectadas
  */ 
public   function Cant() {
     return $this->CantTupla;
	}

public function Ejecutar($consulta){
  //echo "<br>"."la coneccion en la q se hago Ejecutar es : ". $this->CONEXION."<br>";

    if ($this->QUERY = mysql_query($consulta))
	{  //echo $consulta."<br>";
		$this->CantTupla = mysql_affected_rows();
		return true;
	} else {
		//echo "Error en la consulta: ".$this->QUERY;
	  return false;
	 }
  }
  
public function devuelveIDEjecuta($consulta){
//echo "<br>"."la coneccion en la q se hago devuelveIDEjecuta es : ". $this->CONEXION."<br>";
  	//$this->Iniciar();
    if ($this->QUERY = mysql_query($consulta))
	{
	 $id = mysql_insert_id();
      	 // $this->Cerrar();
		 // echo $consulta."Coorreeeccttaaa"."<br>";
         // echo "el valor que devuelve es ". $id;
	  	  return $id;
	} else {
		//echo "FALLOOOOOO!!!!!!!!!!".$consulta."<br>";
        //  $this->Cerrar();
	  		return null;
	 }
  }


public  function IniciarTransaccion(){
  //echo "<br>"."la coneccion en la q se inicia la transaccion es: ". $this->CONEXION."<br>";
    if ($this->QUERY = mysql_query("BEGIN",$this->CONEXION)){
		$this->transaccion = "ON";
    	return true;
    }else
        return false;
	 
  }
public  function RollbackTransaccion(){
   //echo "<br>"."la coneccion en la q voy a hacer rolback es:  ". $this->CONEXION."<br>";
    if ($this->QUERY = mysql_query("ROLLBACK",$this->CONEXION)){
    	$this->transaccion = "OFF";
      return true;
    }else
        return false;
	 
  }
public    function CommitTransaccion(){
	// echo "<br>"."la coneccion en la q se inicia la hago COMMIT es: ". $this->CONEXION."<br>";
    if ($this->QUERY = mysql_query("COMMIT",$this->CONEXION)){
    	$this->transaccion = "OFF";
      return true;
    }else
        return false;
	 
  }




}
?>